Most programs undergo extensive testing before being made available to the public. Generally, the more complex the program is the more testing is required. An example of a complex program is a database management system. A database is defined as an organized collection of data. Formally, the term database refers to the data itself and supporting data structures. In a database, the data is typically organized to support a variety of processes that require interaction with the data. For example, a database containing contact information is organized such that a user can query the database using the name of a co-worker to find the contact information of the co-worker. Conversely, the user identifies a missed call from an unrecognized phone number. The user queries the database using the unrecognized phone number to identify the name of the caller.
A general-purpose database management system (DBMS) is a software system designed to allow the definition, creation, querying, update, and administration of databases. Generally, a database management system is a suite of computer programs that provide an interface between users and one or more databases. An overall goal of a general-purpose DBMS is to meet the needs the applications that interact with the databases, which often adds to the complexity of the DBMS. Meeting the needs of a large number of applications can make the development and testing of a DBMS a difficult, time consuming, and costly process.